package com.practice.javabase.jdk8.functionalInterface;

import java.util.function.Consumer;

/**
 * @功能：
 * @版本： V1
 * @版权： 信息技术有限公司（http://www.mychery.com/）
 * @作者： 磐石战队开发组  00355760
 * @日期： 2024/8/8 14:16
 */
public class ConsumerTest {

    public static void main(String[] args) {
        User user = new User();
        user.setName("张三");

        // 1、使用封装的change方法，要单独申明，功能写死
        ConsumerTest.change(user);
        System.out.println(user.toString());

        // 2、使用函数编程，方法的实现在方法内定义，做到动态处理
        user.change(user1 -> {
            user1.setName("王五");
        });
        System.out.println(user.toString());

        // 3、单独使用Consumer
        Consumer<Integer> consumer = new Consumer<Integer>() {
            @Override
            public void accept(Integer integer) {
                System.out.println("accept: " + integer);
            }
        };
        consumer.accept(1);


        MyFunctionInterface<User> myFunctionInterface = new MyFunctionInterface<User>() {
            @Override
            public void hello(User user) {
                System.out.println("hello: " + user.toString());
            }
        };
        myFunctionInterface.hello(user);
    }

    public static void change(User user) {
        user.setName("李四");

    }
}
